package com.example.demo.mapper;

import com.example.demo.model.Userinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper//这是数据持久层的标志
public interface UserMapper {
    /*
    * 查询全部信息
    * */
    List<Userinfo> getAll();

    /*
    * 根据id查询一条信息
    * */
    Userinfo getUserById(@Param("id")int id);

    /*
    * 用户登录的场景
    * */
    Userinfo login(@Param("username")String username,@Param("password")String password);

    /*
    * 传递排序规则
    * */
    List<Userinfo> getAllByOrder(@Param("myorder")String myorder);

    /*
    * 根据id删除成员
    * */
    int delById(@Param("id")Integer id);

    /*
    * 根据id修改成员信息
    * */
    int update(Userinfo userinfo);

    /*
    * 添加操作
    * */
    int add(Userinfo userinfo);

    /*
    * 添加操作：返回自增id
    * */
    int insert(Userinfo userinfo);

    /*
    * like查询
    * */
    List<Userinfo> getLikeList(@Param("username")String username);

    /*
    * 多表联合查询
    * */
    @Select("select * from userinfo where id=#{id}")
    Userinfo getUserById2(@Param("id")Integer id);

    /*
    * 动态sql添加操作<if>
    * */
    int add2(Userinfo userinfo);

    /*
    * 动态sql <trim>标签
    * */
    int add3(Userinfo userinfo);

    /*
    * 动态sql <where>标签
    * */
    List<Userinfo> getListByWhere(Userinfo userinfo);

    /*
    * 动态sql <set>标签
    * */
    int update2(Userinfo userinfo);

    /*
    *动态sql <foreach>标签
    * */
    int delById2(List<Integer> ids);

}
